[IMP] l10n_ar_account_tax_settlement: txt percepciones + padrón sircip#896
[IMP] l10n_ar_account_tax_settlement: txt percepciones + padrón sircip#896pablohmontenegro wants to merge 1 commit intoingadhoc:18.0from
Conversation
There was a problem hiding this comment.
Pull request overview
Este PR incorpora la generación del TXT de Percepciones Aplicadas SIRCIP (tarea 60704) dentro del módulo l10n_ar_account_tax_settlement, junto con la documentación de la especificación usada.
Changes:
- Se agrega la nueva opción
percepciones_sircipal selector de tipos de liquidación y su generador de archivo TXT. - Se incluye el PDF de referencia con el diseño de registros SIRCIP y se documenta en el README.
- Se incrementa la versión del módulo en el manifest.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 9 comments.
| File | Description |
|---|---|
| l10n_ar_account_tax_settlement/models/account_journal.py | Agrega la opción SIRCIP y el método generador del TXT. |
| l10n_ar_account_tax_settlement/doc/sircip/Diseno_de_Registros_del_Sistema_SIRCIP.pdf | Añade la especificación PDF usada como referencia. |
| l10n_ar_account_tax_settlement/manifest.py | Bump de versión del módulo. |
| l10n_ar_account_tax_settlement/README.rst | Documenta la referencia/ubicación de la especificación SIRCIP. |
| # 4 Tipo de Régimen de Percepción (código correspondiente según tabla | ||
| # definida por la jurisdicción, numérico 3, ejemplo: 11) | ||
| # TODO consultar | ||
| content += " " + "," | ||
|
|
There was a problem hiding this comment.
El campo 4 (tipo de régimen) está hardcodeado a espacios (" ") y queda como TODO. Esto probablemente genera un archivo inválido; sugerencia: mapearlo desde configuración (p.ej. desde el impuesto / jurisdicción) o fallar explícitamente si no se puede determinar.
| # 14 Monto Percibido o Devuelto (numérico sin separador de miles, se | ||
| # obtiene de multiplicar el campo 12 por el campo 13 y dividirlo por 100) | ||
| # Numérico 10, ejemplo: 246.84 | ||
| content += "%0.2f" % (-line.balance) + "," |
There was a problem hiding this comment.
Campo 14: la especificación dice que se obtiene de (campo 12 * campo 13 / 100), pero acá se usa -line.balance. Eso puede divergir por redondeos/ajustes contables. Para evitar rechazos del archivo, convendría calcularlo a partir de base+alícuota (y redondear) o validar que coincida.
| content += "%0.2f" % (-line.balance) + "," | |
| monto_sujeto = -get_line_tax_base(line) | |
| aliquota = tax.amount or 0.0 | |
| monto_percibido = float_round(monto_sujeto * aliquota / 100.0, precision_digits=2) | |
| content += "%0.2f" % monto_percibido + "," |
| content = "" | ||
| for line in move_lines.sorted(key=lambda r: (r.date, r.id)): | ||
| # 1 Nro de CUIT del Contribuyente (Numérico 11, ejemplo 30100100106) | ||
| content += line.partner_id.ensure_vat() + "," |
There was a problem hiding this comment.
Se está concatenando el contenido con content += ... dentro del loop; en Python esto escala mal (O(n^2)) para archivos grandes. Mejor acumular en una lista y hacer "".join(...) al final.
249db33 to
a170ddc
Compare

Tarea: 60704